﻿using System;
using NHibernate.Validator.Constraints;

namespace DataStore.Domain
{
    /// <summary>
    /// A document link
    /// </summary>
    [Serializable]
    public class Link
    {
        /// <summary>
        /// Gets or sets the id.
        /// </summary>
        /// <value>The id.</value>
        public virtual Guid Id { get; set; }
        /// <summary>
        /// Gets or sets the URI of the link.
        /// </summary>
        /// <value>The URI.</value>
        [NotNullNotEmpty]
        public virtual Uri Uri { get; set;}
        /// <summary>
        /// Gets or sets the description of the link.
        /// </summary>
        /// <value>The description.</value>
        public virtual string Description { set; get; }
        /// <summary>
        /// Gets or sets the type of the link.
        /// </summary>
        /// <value>The type.</value>
        public virtual LinkType Location { get; set; }
        /// <summary>
        /// Gets or sets the owner object of the link.
        /// </summary>
        /// <value>The owner.</value>
        public virtual Object Owner { get; set; }
    }
}
